package view;

import bean.Express;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class View {
    static Scanner input = new Scanner(System.in);

    /**
     * 欢迎界面
     */
    public void welcome(){
        System.out.println("欢迎来到快递e站！");
    }

    /**
     * 退出界面
     */
    public void bye(){
        System.out.println("欢迎下次取件～");
    }

    /**
     * 主菜单
     * @return
     */
    public int menu(){
        int i = -1;
        System.out.println("请输入你的身份：");
        System.out.println("1-用户");
        System.out.println("2-快递员");
        System.out.println("0-退出");
        String s = input.nextLine();
        try {
            i = Integer.parseInt(s);
        } catch (NumberFormatException e) {

        }
        if(i<0 || i>2){
            System.out.println("你的输入有误，请检查是否在0～2范围。。");
            return menu();
        }
        return i;
    }
    /**
     * 用户主界面
     */
    public String userMenu(){
        int i = -1;
        System.out.println("请根据指示完成操作：");
        System.out.println("请输入六位取件码：");
        String s = input.nextLine();

        try {
            i = Integer.parseInt(s);
        } catch (NumberFormatException e) {

        }
        if(i<100000 || i>999999){
            System.out.println("您输入的取件码有误，请重新输入");
            return userMenu();
        }
        return s;
    }
    /**
     * 快递员主界面
     */
    public int courierMenu(){
        int i = -1;
        System.out.println("请按照指示完成操作：");
        System.out.println("欢迎您，勤劳的快递员请问您需要进行什么操作：");
        System.out.println("1-添加快递");
        System.out.println("2-修改快递信息");
        System.out.println("3-删除快递信息");
        System.out.println("4-查询所有快递信息");
        System.out.println("0-返回上一级菜单");
        String s = input.nextLine();
        try {
            i = Integer.parseInt(s);
        } catch (NumberFormatException e) {

        }
        if(i<0 || i>4){
            System.out.println("您的输入有误，请重新输入");
            return courierMenu();
        }
        return i;
    }
    /**
     * 添加快递单号
     */
    public String addNumber(){
        System.out.println("请根据提示完成操作");
        System.out.println("请输入快递单号");
        String number = input.nextLine();
        return number;
    }
    /**
     * 添加快递其它信息
     */
    public Express addElse(){
        System.out.println("请根据提示信息完成操作");
        System.out.println("请输入快递公司");
        String company = input.nextLine();
        Express express = new Express();
        express.setCompany(company);
        return express;
    }
    /**
     * 对快递进行操作
     */
    public String findNumber(){
        System.out.println("请根据提示完成对应的操作：");
        System.out.println("请输入要操作的快递单号");
        String s = input.nextLine();
        return s;
    }
    /**
     * 修改快递信息
     */
    public Express update(){
        System.out.println("请输入要修改的快递单号");
        String s = input.nextLine();
        Express express = new Express();
        express.setNumber(s);
        System.out.println("请输入新的快递公司");
        String s1 = input.nextLine();
        express.setCompany(s1);
        return express;

    }

    /**
     * 删除快递信息
     */
    public int delete(){
        System.out.println("是否要删除此快递：1-是，2-否");
        String s = input.nextLine();
        int i = -1;
        try {
            i = Integer.parseInt(s);
        } catch (NumberFormatException e) {

        }
        if(i<1 || i>2){
            System.out.println("您输入的参数有误，请重新输入");
            return delete();
        }
        return i;
    }
    /**
     * 查询所有快递信息
     */
    public void printAll(HashMap<String, Express> map){
        if(map.size() != 0){
            for (Map.Entry<String, Express> stringExpressEntry : map.entrySet()) {
                System.out.println(stringExpressEntry.getValue());
            }
        }else {
            System.out.println("快递柜无快递！！！");
        }
    }
    /**
     * 操作成功界面
     *
     */
    public void success(int num){
        if(num == 1){
            System.out.println("添加成功");
        }else if(num == 2){
            System.out.println("修改成功");
        }else if(num == 3){
            System.out.println("删除成功");
        }else if(num == 4){
            System.out.println("取件成功，欢迎您下次取件");
        }
    }
    /**
     * 操作失败界面
     */
    public void fail(int num){
        if(num == 1){
            System.out.println("单号已存在，请重新输入！");
        }else if(num == 2){
            System.out.println("您输入的单号不存在，请重新输入");
        }else if(num == 3){
            System.out.println("取消删除，正在返回");
        }else if(num == 4){
            System.out.println("您输入的取件码不存在，请重新输入！");
        }
    }
}
